package com.ph.shopping.facade.product.service;

import java.util.List;

import com.ph.shopping.common.util.page.PageBean;
import com.ph.shopping.common.util.result.Result;
import com.ph.shopping.facade.product.entity.PhProductClassify;
import com.ph.shopping.facade.product.vo.PhProductClassifyVo;

/**
 * @项目：phshopping-facade-product
 * @描述：商品类型 @作者： hewl
 * @创建时间：2017年3月6日 上午11:15
 * @Copyright by hewl
 * @version 1.0.0
 */
public interface IPhProductClassifyService {
	/**
	 * 查看详情 或者多条详情语句(不要使用分页插件查询)
	 * 
	 * @author hewl
	 * @param phProductClassifyVo
	 * @return Result
	 */
	List<PhProductClassifyVo> getProductClassifyVoDetail(PhProductClassifyVo phProductClassifyVo) throws Exception;

	/**
	 * 列表数据展示
	 * 
	 * @author hewl
	 * @param phProductClassifyVo
	 * @return List<PhProductClassifyVo>
	 */
	List<PhProductClassifyVo> getProductClassifyVoList(PhProductClassifyVo phProductClassifyVo) throws Exception;

	/**
	 * 列表分页数据展示
	 * 
	 * @author hewl
	 * @param phProductClassifyVo
	 * @return Result
	 */
	Result getProductClassifyVoPageList(PageBean pageBean, PhProductClassifyVo phProductClassifyVo) throws Exception;

	/**
	 * 商品分类商城扩展
	 * 
	 * @author hewl
	 * @param PhProductClassifyExtendVo
	 * @return Map<String,Object>
	 *//*
	List<PhProductClassifyVo> getPhProductClassifyExtendVoList(PhProductClassifyVo extendVo) throws Exception;*/
	
	/**
	 * 商城首页页面单独模块
	 * @author hewl
	 * @param PhProductClassifyVo
	 * @return  List<PhProductClassifyVo> 
	 */
	public List<PhProductClassifyVo> getProductIndexList(PhProductClassifyVo extendVo) throws Exception;

	/**
	 * 单条数据展示
	 * 
	 * @author hewl
	 * @param phProductClassifyVo
	 * @return PhProductClassifyVo
	 */
	PhProductClassifyVo getProductClassifyVo(PhProductClassifyVo phProductClassifyVo) throws Exception;

	/**
	 * 父级查询
	 * 
	 * @author hewl
	 * @param phProductClassifyVo
	 * @return List<PhProductClassifyVo>
	 */
	List<PhProductClassifyVo> getProductClassifyVoAchildList(PhProductClassifyVo phProductClassifyVo) throws Exception;

	/**
	 * 逻辑删除商品类型
	 * 
	 * @author hewl
	 * @param phProductClassifyVo:id
	 * @return Result
	 */
	Result deleteLogicPhProductClassify(PhProductClassifyVo phProductClassifyVo) throws Exception;

	/**
	 * 
	 * @description: 新增商品分类
	 * @param phProductClassify
	 *            分类对象
	 * @return Result
	 * @throws Exception
	 * @author lichao
	 * @date 2017年3月15日
	 */
	Result addProductClassify(PhProductClassify phProductClassify) throws Exception;

	/**
	 * 
	 * @description: 修改商品分类
	 * @param phProductClassify
	 * @return Result
	 * @throws Exception
	 * @author lichao
	 * @date 2017年3月15日
	 */
	Result updateProductClassify(PhProductClassify phProductClassify) throws Exception;

	/**
	 * 
	 * @description: 根据一级分类查下面所有被引用的商品数量
	 * @param phProductClassifyVo
	 * @return
	 * @throws Exception
	 * @author lichao
	 * @date 2017年3月28日
	 */
	Integer getExistProductByClassifyLevelOne(PhProductClassifyVo phProductClassifyVo) throws Exception;

	/**
	 * 
	 * @description: 根据二级级查下面所有被引用的商品数量
	 * @param phProductClassifyVo
	 * @return
	 * @throws Exception
	 * @author lichao
	 * @date 2017年3月28日
	 */
	Integer getExistProductByClassifyLevelTwo(PhProductClassifyVo phProductClassifyVo) throws Exception;
}
